//
//  YRBaseTableViewController.swift
//  YRSinaSwiftVersion
//
//  Created by 夜神月 on 16/4/8.
//  Copyright © 2016年 yr. All rights reserved.
//

import UIKit

//
class YRBaseTableViewController: UITableViewController,YRVisitorViewDelegate {
    // 用户是否登录
    var userLogin = false
    
    // 是控制器加载view的时候会调用， 如果直接调用super.loadView(),后续该怎么加载就会怎么加载 sb / xib, 在 loadView 里面给 view设置值后，那么久不会再去 sb / xib
    override func loadView() {
        userLogin ? super.loadView() : setupVisitorView()
    }
    
    // MARK: - 按钮点击事件
    @objc private func didClickRegister() {
        print("didClickRegister")
    }
    
    @objc private func didClickLogin() {
        print("didClickLogin")
    }
    
    // MARK: - 代理方法
    func visitorViewDidClickRegisterButton(visitorView visitorView: UIView) {
        print("visitorViewDidClickRegisterButton")
    }
    
    func visitorViewDidClickLoginButton(visitorView visitorView: UIView) {
        print("visitorViewDidClickLoginButton")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    // 私有方法: - 私有方法
    private func setupVisitorView() {
        view = visitorView
        // 设置访客视图的代理，当设置代理后，没有实现这个协议会报错
        visitorView.delegate = self
        // 设置访客视图内容，4个控制器都会走这里，self 具体是什么类型看创建的子类: 多态
        if self is YRHomeTableViewController {
            visitorView.startRotation()
        } else if self is YRMessageTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
        } else if self is YRDiscoverTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
        } else if self is YRProfileTableViewController {
            visitorView.setupVisitorViewInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
        }
        
        // 设置导航栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("didClickRegister"))
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("didClickLogin"))
    }
    
    // MARK : - 懒加载
    // 给别人调用的时候尽量简单
    // 高内聚 低耦合
    lazy var visitorView: YRVisitorView = YRVisitorView()

}
